This invention relates to non-volatile storage for gaming machines such as slot machines and video poker machines. More particularly, the present invention relates to hardware and methods for providing battery backed random access memory on gaming machines.
As technology in the gaming industry progresses, the traditional mechanically driven reel slot machines are being replaced with electronic counterparts having CRT, LCD video displays or the like and gaming machines such as video slot machines and video poker machines are becoming increasingly popular. Part of the reason for their increased popularity is the nearly endless variety of games that can be implemented on gaming machines utilizing advanced electronic technology. In some cases, newer gaming machines are utilizing computing architectures developed for personal computers. These video/electronic gaming advancements enable the operation of more complex games, which would not otherwise be possible on mechanical-driven gaming machines and allow the capabilities of the gaming machine to evolve with advances in the personal computing industry.
Typically, utilizing a master gaming controller, the gaming machine controls various combinations of devices that allow a player to play a game on the gaming machine and also encourage game play on the gaming machine. For example, a game played on a gaming machine usually requires a player to input money or indicia of credit into the gaming machine, indicate a wager amount, and initiate a game play. These steps require the gaming machine to control input devices, including bill validators and coin acceptors, to accept money into the gaming machine and recognize user inputs from devices, including touch screens and button pads, to determine the wager amount and initiate game play. After game play has been initiated, the gaming machine determines a game outcome, presents the game outcome to the player and may dispense an award of some type depending on the outcome of the game.
To implement the gaming features described above on a gaming machine using a components utilized in the personal computer industry, a number of requirements unique to the gaming industry must be considered. One such requirement is the storage of critical game information. Traditionally, gaming machines have been designed to store critical game information such as general accounting information (e.g. credits input the gaming machine and credits dispensed from the gaming machine) and a state of a game being played on the gaming machine using a non-volatile memory storage device. For example, game state information stored in a non-volatile memory might include the state of game currently being played on the gaming machine as well as game history information on a number of previous games played on the gaming machine that may be recalled when a malfunction such as a power failure has occurred or when a player has a dispute with the outcome of a previous game played on the gaming machine. A battery backed random access memory (RAM) is an example of a non-volatile memory storage device used previously on many types of gaming machines.
The non-volatile memory storage device may be designed to store critical game information for long periods of time. The length of period of time may be dictated by the gaming jurisdiction where the gaming machine is operated. For example, a battery backed RAM storage device may be designed to store data for a minimum of five years and even as long as seven years without replacing or maintaining the battery. Thus, to limit the battery size, cost and maintenance requirements for long storage periods, electronic RAM memory hardware with a low power consumption is required.
A typical modern video gaming machine contains several devices such as the microprocessor, RAM memory, ROM memory, mass storage devices, video display controller, sound generation hardware, etc. which share commonality with commercially available devices designed for personal computers. The typical system architecture of a modern personal computer control chipset precludes the connection of memory devices to the system bus unless those devices adhere to the strict specifications of the memory controller. All currently available control chipsets on personal computers require the use of dynamic memory devices, such as traditional Dynamic Random Access Memory (DRAM) or Synchronous DRAM. These devices consume too much DC power to allow effective use of battery technology for data backup for critical data storage requirements lasting multiple years. Thus, to utilize hardware components designed in the personal computing industry in the gaming machine, non-volatile memory storage devices compatible with personal computing hardware are needed.
The preservation of critical game information also influences the design of gaming software executed on the gaming machine. Gaming software executed on gaming machines is designed such that critical game information is not easily lost or corrupted. Therefore, gaming software is designed to prevent critical data loss in the event of software bugs, hardware failures, power failures, electrostatic discharges or tampering with the gaming machine. The implementation of the software design in the gaming software to meet critical data storage requirements may be quite complex and may require extensive of use the non-volatile memory hardware.
Traditionally, in the gaming industry, game design and the game platform design have been performed by single entities. Thus, a single gaming machine manufacturer will usually design a game and then design and manufacture a gaming machine allowing play of the game. Further, for game design on a pre-existing gaming machine, game development is usually always performed by the manufacturer of the gaming machine. The approach of the gaming industry may be contrasted with the video game industry. In the video game industry, games for a particular video game platform are typically developed by many companies different from the company that manufactures the video game platform. One trend in the gaming industry is a desire to create a game development environment similar to the video gaming industry where outside vendors may provide games to a gaming machine.
Issues involving the security, the accessibility and the efficient use of the non-volatile memory on gaming machines provide a few barriers to opening up game development to outside vendors as well as to game development in general. Traditionally, software designs for non-volatile memory utilization have used a fixed memory map approach where all of the required non-volatile memory needed to store critical data and perform critical operations are determined before the code is initialized on the gaming machine and remain fixed once the game is launched. The fixed memory approach may be inefficient because temporary non-volatile memory space, which may be required by many gaming software units for the temporary storage of data, is not used for other purposes when it is not being used by a particular gaming software unit. Typically, the amount non-volatile memory on a gaming machine is limited by the hardware requirements such as the power consumption. Thus, to ensure there is enough of the limited non-volatile memory available on the gaming machine, a game designer must be aware of all of the non-volatile memory requirements needed by the different elements of the gaming machine software and not just those utilized for the presentation of game. This requirement is a barrier to an open game design environment and, in general, slows down the game development process.
Another limitation of the fixed non-volatile memory approach is the difficulty of modifying the fixed non-volatile memory map to install new software. When a software installation requires a different amount of memory in different locations than what is available with the current fixed map on the gaming machine, the non-volatile memory is usually re-initialized to generate a new fixed map. The re-initialization of the non-volatile memory destroys all critical data stored in the non-volatile memory and is also time consuming which is undesirable to the gaming machine operator. Thus, a deployment of a new game on a gaming machine is usually an infrequent occurrence. In contrast, in the video game industry, games are frequently and easily deployed on any given platform.
Another barrier to game development and an open game development environment is the accessibility of the non-volatile memory. Currently, gaming machine software development tools do not provide easy or standard methods for allocating and determining the contents of the non-volatile memory. These deficiencies make producing error free software involving the non-volatile memory more difficult and may be deterrent to many game designers.
Finally, the fixed memory approach for non-volatile memory may be infeasible for an open game development environment because of security issues. In the fixed memory approach, it is undesirable to provide the locations in memory where critical data is stored because it increases the potential for tampering with the gaming machine. For instance, a person might alter a non-volatile memory location to illegally obtain a jackpot. Thus, for security reasons, it would be undesirable to use a fixed memory approach in an open game development environment because the locations of critical data in the non-volatile memory would have to be openly shared.
In view of the above, to improve the game development process for gaming machines, it would be desirable to provide a more accessible, less complicated, more secure and more efficient methods and apparatus of providing non-volatile memory hardware and software on a gaming machine.